package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootPerson;
import org.footballmanager.pandafootball.system.form.impl.FootPersonSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;

public interface FootPersonService extends BaseService<FootPerson> {
	/**
	 *
	 * @param path
	 * @param request
	 */
	void getExcel(byte[] path, HttpServletRequest request) throws IOException;

	/**
	 *
	 * @param path
	 * @param request
	 */
	void getSCardExcel(byte[] path, HttpServletRequest request) throws IOException;

	/**
	 *
	 * @param path
	 * @param request
	 */
	void getPCardExcel(byte[] path, HttpServletRequest request) throws IOException;

	/**
	 * 删除所有球员
	 * @param request
	 */
	void deleteAll(HttpServletRequest request);

	/**
	 * 找到所有对应球员
	 * @param from
	 * @param to
	 * @param userId
	 * @param request
	 * @return
	 */
	String findPersonByScore(String from, String to, Long userId, HttpServletRequest request);

	/**
	 * 根据名称查询记录
	 * @param name
	 * @return
	 */
    FootPerson findByName(String name);

    /**
     * 翻页方法
     * @param footPersonSearchForm 条件
     * @return 列表
     */
    List<FootPerson> findall(FootPersonSearchForm footPersonSearchForm);

    /**
     * 根据球员编码查找球员
     * @param qybm 球员编码
     * @return 球员信息
     */
    FootPerson findByQybm(String qybm);

	/**
	 * 根据主键获取记录
	 * @param id 主键
	 * @return 记录
	 */
	FootPerson get(Serializable id);

	/**
	 * 根据等级主键获取球员列表
	 * @param djId 等级主键
	 * @return 球员列表
	 */
	List<FootPerson> findByDjId(Long djId);

    /**
     * 查询
     * @param entityname 实体类名
     * @param map 参数
     * @param footPersonSearchForm 条件
     */
    void search(String entityname, Model map, FootPersonSearchForm footPersonSearchForm);

    /**
     * 初始化
     * @param entityname 实体类名
     * @param footPersonSearchForm 条件
     * @param map 参数
     */
    void init(String entityname, FootPersonSearchForm footPersonSearchForm, Model map);

    /**
     * 删除所有
     * @param footPersonSearchForm 条件
     * @param request 请求
     */
    void deleteAll(FootPersonSearchForm footPersonSearchForm, HttpServletRequest request);
}